Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /var/www/vhosts/bilgigunlugum.net/httpdocs/index.php on line 43
PHP Programlama

BG MVC Model View Controller eğitim serisi yayında...

Ana sayfa > Programlama > PHP > Veri alma

Veri alma

PHP ile bir MySQL veritabanındaki tablolardan 3 farklı yöntemle veri okuyabiliriz.

MySQL'de bir tablodan veri okumak için SELECT komutu kullanılır. MySQL ile bir tablodan tüm sütun değerlerini okumak için aşağıdaki komut yapısını kullanabilirsiniz:

SELECT * FROM tablo_adi

Sadece belirli sütun değerlerini okumak isterseniz * karakteri yerine virgülişareti ile ayırarak sütun adlarını yazmanız yeterli olacaktır:

SELECT sutun_adi1, sutun_adi2 FROM tablo_adi

Buradaki örneklerimizde, daha önce oluşturduğumuz personel adlı tablodan veri okumaya çalışacağız:

1. MySQLi Nesneye Dayalı yöntem ile


<?php
  $sunucu = "localhost";
  $kullanici = "kullanıcıadı";
  $parola = "parola";
  $veritabani = "veritabaniadi";

  // Bağlantı oluşturma
  $bag = new mysqli($sunucu, $kullanici, $parola, $veritabani);

  // Bağlantı kontrolü										
  if ($bag->connect_error) {
      die("Bağlantı hatası: " . $bag->connect_error);
  }

  // MySQL tablodan değer okuma komutu
  $sqlquery = "SELECT adi, soyadi, dogumtarihi FROM personel";
  $sonuc = $conn->query($sqlquery);

  if ($sonuc->num_rows > 0) {
      // Döngünün her tekrarında tabloda yer alan bir kayıda işlem yapar.
      while($row = $sonuc->fetch_assoc()) {
         echo "Adı ve soyadı: " . $row["adi"]. " " . $row["soyadi"] . "<br/>";
         echo "Doğum tarihi: " . $row["dogumtarihi"]. "<br/><br/>";
      }
  } 
  else {
      echo "Kayıt bulunamadı!";
  }
  
  $bag->close();
?>

Yukarıdaki örnekteki kodlar, veritabanına bağlandıktan sonra, $sqlquery değişkenine kayıt okumak için gerekli olan MySQL komut dizisini atar. $sqlquery değişkenini $bag->query() fonksiyonuna parametre olarak geçirip, fonksiyonu çağırarak personel tablosu içindeki adi, soyadi ve dogumtarihi sütunlarında yer alan değerleri okur ve sonucları $sonuc değişkenine atar. Eğer, $sonuc değişkeni içindeki num_rows değeri yani okunan kayıt sayısı 0'dan büyük ise, while döngüsü ile fetch_assoc() fonksiyonu her defasında bir kayıt olmak üzere tüm sütun değerlerini $row değişkenine atayarak ekrana yazar. Hata meydana gelirse, $bag->error değişkeni ile ekrana yazar.

2. MySQLi fonksiyonel yöntem ile


<?php
  $sunucu = "localhost";
  $kullanici = "kullanıcıadı";
  $parola = "parola";
  $veritabani = "veritabaniadi";

  // Bağlantı oluşturma
  $bag = mysqli_connect($sunucu, $kullanici, $parola, $veritabani);

  // Bağlantı kontrolü									
  if (!$bag) {
      die("Bağlantı hatası: " . mysqli_connect_error());
  }

  // MySQL tablodan değer okuma komutu
  $sqlquery = "SELECT adi, soyadi, dogumtarihi FROM personel";
  $sonuc = mysqli_query($conn, $sqlquery);

  if (mysqli_num_rows($sonuc)> 0) {
      // Döngünün her tekrarında tabloda yer alan bir kayıda işlem yapar.
      while($row = mysqli_fetch_assoc($sonuc)) {
         echo "Adı ve soyadı: " . $row["adi"]. " " . $row["soyadi"] . "<br/>";
         echo "Doğum tarihi: " . $row["dogumtarihi"]. "<br/><br/>";
      }
  } 
  else {
      echo "Kayıt bulunamadı!";
  }
  
  mysqli_close($bag);
?>

Yukarıdaki örnekteki kodlar, bir önceki örnekte nesneye dayalı yöntemle okunan kayıtları fonksiyonel yöntemle tablodan okur.